package com.study.config;
import org.springframework.ai.chat.client.advisor.SimpleLoggerAdvisor;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.chat.prompt.ChatOptions;
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.context.annotation.Configuration;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.ollama.OllamaChatModel;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class CommonConfiguration {
    @Bean("ollamaChatClient")// 第一种配置的方式
    public ChatClient chatClient(OllamaChatModel model){
        return ChatClient
                .builder(model)
                .defaultAdvisors(new SimpleLoggerAdvisor())
                .build();
    }
    @Bean("ollamaChatClientV2")// 第二种配置的方式
    public ChatClient chatClientV2(OllamaChatModel model) {
        return ChatClient.builder(model) // 创建ChatClient工厂,利用它可以自由选择模型、添加各种自定义配置
                .defaultSystem("你是一个热心、可爱的智能助手，你的名字叫小团团，请以小团团的身份和语气回答问题。") //系统预设
                .build(); // 构建ChatClient实例
    }

    // OpenAI（DeepSeek）客户端
    @Bean("openAIClientDeepSeek")
    public ChatClient openAIClientDeepSeek(OpenAiChatModel model){
        return ChatClient.builder(model)
                .defaultSystem("你是一个专业的AI助手，请以简洁、逻辑清晰的方式回答问题。")
                .build();
    }

    @Bean(name = "deepseekModel")
    public ChatModel deepSeekModel(OpenAiChatModel model) {
        return model;
    }

    @Bean(name = "ollamaModel")
    public ChatModel ollamaModel(OllamaChatModel model) {
        return model;
    }
}
